namespace B.S.NewMedical.Api.Read.DTOS.Doctor
{
    /// <summary>
    /// 开单申请表DTO
    /// </summary>
    public class PrescriptionApplicationDto
    {
        /// <summary>
        /// 开单申请ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 外键，关联到医院表
        /// </summary>
        public int HospitalId { get; set; }

        /// <summary>
        /// 医院名称
        /// </summary>
        public string HospitalName { get; set; }

        /// <summary>
        /// 外键，关联到用户表
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 开单申请时间
        /// </summary>
        public DateTime ApplicationTime { get; set; }

        /// <summary>
        /// 状态，0 表示待审核，1 表示审核通过，2 表示审核驳回，3 表示已支付，4 表示已取消
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 状态名称
        /// </summary>
        public string StatusName { get; set; }

        /// <summary>
        /// 合计金额，如 201.00
        /// </summary>
        public decimal TotalAmount { get; set; }

        /// <summary>
        /// 申请原因
        /// </summary>
        public string ApplyReason { get; set; }

        /// <summary>
        /// 审核人 ID，关联到医生表
        /// </summary>
        public int? AuditorId { get; set; }

        /// <summary>
        /// 审核人姓名
        /// </summary>
        public string AuditorName { get; set; }

        /// <summary>
        /// 审核时间
        /// </summary>
        public DateTime? AuditTime { get; set; }

        /// <summary>
        /// 驳回原因
        /// </summary>
        public string RejectReason { get; set; }

        /// <summary>
        /// 支付时间
        /// </summary>
        public DateTime? PaymentTime { get; set; }

        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTime? CancelTime { get; set; }

        /// <summary>
        /// 明细列表
        /// </summary>
        public List<PrescriptionDetailDto> Details { get; set; }
    }
} 